public class TestBinary {
    public static void main(String[] args) {

        System.out.println(isOne(0b110010,2));


        int n = 0b1101000;
        int rightMost = getRightMost(n);
        System.out.println(Integer.toBinaryString(rightMost));  // 1000
        System.out.println(Integer.toBinaryString(n & -n));  // 1000

    }

    /**
     * 整形变量 a 二进制后，第i位是否是1
     */
    public static boolean isOne(int a, int i) {
        return ((int) Math.pow(2, i - 1) & a) != 0;
    }

    /**
     * 提取整形变量a最右侧的1
     * 例如：0b101000 -> 0b1000
     */
    public static int getRightMost(int a) {
        return a & ((~a) + 1);
    }
}
